/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package BusinessLogic;

import BusinessEntity.BE_Personal;
import BusinessEntity.BE_Requerimiento;
import BusinessEntity.BE_TablaMaestra;
import BusinessEntity.BE_Usuario;
import DataAccessObject.DA_Requerimiento;
import java.sql.SQLException;
import java.util.ArrayList;

/**
 *
 * @author Kenjy
 */
public class BL_Requerimiento {
    
    private static BL_Requerimiento pinstancia=null;

    public static BL_Requerimiento obtenerInstancia()
    {
      if (pinstancia==null)
      {
          pinstancia=new BL_Requerimiento();
      }
      return pinstancia;
    }
    
        public ArrayList<BE_Requerimiento> obtenerRequerimientos(BE_Personal objBEPersonal)throws InstantiationException, IllegalAccessException, SQLException{
        
        ArrayList<BE_Requerimiento> aobjBERequerimiento = DA_Requerimiento.obtenerInstancia().obtenerRequerimientos(objBEPersonal);
        return aobjBERequerimiento;
    }
        
        public ArrayList<BE_Requerimiento> obtenerRequerimientosBusqueda(BE_Personal objBEPersonal, BE_Requerimiento objBE_Requerimiento)throws InstantiationException, IllegalAccessException, SQLException{
        
        ArrayList<BE_Requerimiento> aobjBERequerimiento = DA_Requerimiento.obtenerInstancia().obtenerRequerimientosBusqueda(objBEPersonal, objBE_Requerimiento);
        return aobjBERequerimiento;
    }
                
       public BE_Requerimiento crearObjetoRequerimiento(String strNombre,String strDescripcion, BE_TablaMaestra objPrioridad, BE_Usuario objUsuario, int intUsuarioAsignado, int intIdRequerimiento){
        
        BE_Requerimiento objRequerimiento = new BE_Requerimiento();
        objRequerimiento.setIdRequerimiento(intIdRequerimiento);
        objRequerimiento.setStrNombre(strNombre);
        objRequerimiento.setStrDescripcion(strDescripcion);
        if(objPrioridad != null){
           objRequerimiento.setIntPrioridad(objPrioridad.getIdSubTipo()); 
        }
        if(objUsuario != null){
           objRequerimiento.setObjBEUsuario(objUsuario);
        }
       
        objRequerimiento.setIntUsuarioAsignado(intUsuarioAsignado);
        
        return objRequerimiento;

    }
 
           public void registrarRequerimiento(BE_Requerimiento objRequerimiento) throws InstantiationException, IllegalAccessException, SQLException{
        
         DA_Requerimiento.obtenerInstancia().registrarRequerimiento(objRequerimiento);
         


    }
           
          public void ejecutarRequerimiento(int intCodigoRequerimiento, int intFlagEjecucion) throws InstantiationException, IllegalAccessException, SQLException{
        
        DA_Requerimiento.obtenerInstancia().ejecutarRequerimiento(intCodigoRequerimiento, intFlagEjecucion);

    }
          public boolean verificacionrequerimientos(int intIdRol, int intIdUsuario) throws InstantiationException, IllegalAccessException{
              boolean bolResultado = DA_Requerimiento.obtenerInstancia().verificacionrequerimientos(intIdRol, intIdUsuario);
              return bolResultado;
    }
          
               
          public BE_Requerimiento obtenerRequerimientoID(int intCodigoRequerimiento) throws InstantiationException, IllegalAccessException, SQLException{
        
              BE_Requerimiento objBE_Requerimiento = new BE_Requerimiento();
              objBE_Requerimiento = DA_Requerimiento.obtenerInstancia().obtenerRequerimientoID(intCodigoRequerimiento);
              return objBE_Requerimiento;
    }
    
           
           public void asignarRequerimiento(BE_Requerimiento objRequerimiento) throws InstantiationException, IllegalAccessException, SQLException{
        
         DA_Requerimiento.obtenerInstancia().asignarRequerimiento(objRequerimiento);
         
    }
           
        public void eliminarRequerimiento(int intCodigoRequerimiento) throws InstantiationException, IllegalAccessException, SQLException{

            DA_Requerimiento.obtenerInstancia().eliminarRequerimiento(intCodigoRequerimiento);

        }
        
                  public void modificarRequerimiento(BE_Requerimiento objRequerimiento) throws InstantiationException, IllegalAccessException, SQLException{
        
         DA_Requerimiento.obtenerInstancia().modificarRequerimiento(objRequerimiento);
         


    }
                  
              public void actualizarRequerimientoEstimado(int intCodigoRequerimiento) throws InstantiationException, IllegalAccessException, SQLException{
        
        DA_Requerimiento.obtenerInstancia().actualizarRequerimientoEstimado(intCodigoRequerimiento);

    }
    public void actualizarRequerimientoPlanificado(int intCodigoRequerimiento) throws InstantiationException, IllegalAccessException, SQLException{
        
        DA_Requerimiento.obtenerInstancia().actualizarRequerimientoPlanificado(intCodigoRequerimiento);

    }
}
